package com.beidouapp.domain.example;

import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;

public class DrugReferenceExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public DrugReferenceExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(String value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(String value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(String value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(String value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(String value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(String value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLike(String value) {
            addCriterion("id like", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotLike(String value) {
            addCriterion("id not like", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<String> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<String> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(String value1, String value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(String value1, String value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andDrugNameIsNull() {
            addCriterion("drug_name is null");
            return (Criteria) this;
        }

        public Criteria andDrugNameIsNotNull() {
            addCriterion("drug_name is not null");
            return (Criteria) this;
        }

        public Criteria andDrugNameEqualTo(String value) {
            addCriterion("drug_name =", value, "drugName");
            return (Criteria) this;
        }

        public Criteria andDrugNameNotEqualTo(String value) {
            addCriterion("drug_name <>", value, "drugName");
            return (Criteria) this;
        }

        public Criteria andDrugNameGreaterThan(String value) {
            addCriterion("drug_name >", value, "drugName");
            return (Criteria) this;
        }

        public Criteria andDrugNameGreaterThanOrEqualTo(String value) {
            addCriterion("drug_name >=", value, "drugName");
            return (Criteria) this;
        }

        public Criteria andDrugNameLessThan(String value) {
            addCriterion("drug_name <", value, "drugName");
            return (Criteria) this;
        }

        public Criteria andDrugNameLessThanOrEqualTo(String value) {
            addCriterion("drug_name <=", value, "drugName");
            return (Criteria) this;
        }

        public Criteria andDrugNameLike(String value) {
            addCriterion("drug_name like", value, "drugName");
            return (Criteria) this;
        }

        public Criteria andDrugNameNotLike(String value) {
            addCriterion("drug_name not like", value, "drugName");
            return (Criteria) this;
        }

        public Criteria andDrugNameIn(List<String> values) {
            addCriterion("drug_name in", values, "drugName");
            return (Criteria) this;
        }

        public Criteria andDrugNameNotIn(List<String> values) {
            addCriterion("drug_name not in", values, "drugName");
            return (Criteria) this;
        }

        public Criteria andDrugNameBetween(String value1, String value2) {
            addCriterion("drug_name between", value1, value2, "drugName");
            return (Criteria) this;
        }

        public Criteria andDrugNameNotBetween(String value1, String value2) {
            addCriterion("drug_name not between", value1, value2, "drugName");
            return (Criteria) this;
        }

        public Criteria andCommonNameIsNull() {
            addCriterion("common_name is null");
            return (Criteria) this;
        }

        public Criteria andCommonNameIsNotNull() {
            addCriterion("common_name is not null");
            return (Criteria) this;
        }

        public Criteria andCommonNameEqualTo(String value) {
            addCriterion("common_name =", value, "commonName");
            return (Criteria) this;
        }

        public Criteria andCommonNameNotEqualTo(String value) {
            addCriterion("common_name <>", value, "commonName");
            return (Criteria) this;
        }

        public Criteria andCommonNameGreaterThan(String value) {
            addCriterion("common_name >", value, "commonName");
            return (Criteria) this;
        }

        public Criteria andCommonNameGreaterThanOrEqualTo(String value) {
            addCriterion("common_name >=", value, "commonName");
            return (Criteria) this;
        }

        public Criteria andCommonNameLessThan(String value) {
            addCriterion("common_name <", value, "commonName");
            return (Criteria) this;
        }

        public Criteria andCommonNameLessThanOrEqualTo(String value) {
            addCriterion("common_name <=", value, "commonName");
            return (Criteria) this;
        }

        public Criteria andCommonNameLike(String value) {
            addCriterion("common_name like", value, "commonName");
            return (Criteria) this;
        }

        public Criteria andCommonNameNotLike(String value) {
            addCriterion("common_name not like", value, "commonName");
            return (Criteria) this;
        }

        public Criteria andCommonNameIn(List<String> values) {
            addCriterion("common_name in", values, "commonName");
            return (Criteria) this;
        }

        public Criteria andCommonNameNotIn(List<String> values) {
            addCriterion("common_name not in", values, "commonName");
            return (Criteria) this;
        }

        public Criteria andCommonNameBetween(String value1, String value2) {
            addCriterion("common_name between", value1, value2, "commonName");
            return (Criteria) this;
        }

        public Criteria andCommonNameNotBetween(String value1, String value2) {
            addCriterion("common_name not between", value1, value2, "commonName");
            return (Criteria) this;
        }

        public Criteria andEnglishNameIsNull() {
            addCriterion("english_name is null");
            return (Criteria) this;
        }

        public Criteria andEnglishNameIsNotNull() {
            addCriterion("english_name is not null");
            return (Criteria) this;
        }

        public Criteria andEnglishNameEqualTo(String value) {
            addCriterion("english_name =", value, "englishName");
            return (Criteria) this;
        }

        public Criteria andEnglishNameNotEqualTo(String value) {
            addCriterion("english_name <>", value, "englishName");
            return (Criteria) this;
        }

        public Criteria andEnglishNameGreaterThan(String value) {
            addCriterion("english_name >", value, "englishName");
            return (Criteria) this;
        }

        public Criteria andEnglishNameGreaterThanOrEqualTo(String value) {
            addCriterion("english_name >=", value, "englishName");
            return (Criteria) this;
        }

        public Criteria andEnglishNameLessThan(String value) {
            addCriterion("english_name <", value, "englishName");
            return (Criteria) this;
        }

        public Criteria andEnglishNameLessThanOrEqualTo(String value) {
            addCriterion("english_name <=", value, "englishName");
            return (Criteria) this;
        }

        public Criteria andEnglishNameLike(String value) {
            addCriterion("english_name like", value, "englishName");
            return (Criteria) this;
        }

        public Criteria andEnglishNameNotLike(String value) {
            addCriterion("english_name not like", value, "englishName");
            return (Criteria) this;
        }

        public Criteria andEnglishNameIn(List<String> values) {
            addCriterion("english_name in", values, "englishName");
            return (Criteria) this;
        }

        public Criteria andEnglishNameNotIn(List<String> values) {
            addCriterion("english_name not in", values, "englishName");
            return (Criteria) this;
        }

        public Criteria andEnglishNameBetween(String value1, String value2) {
            addCriterion("english_name between", value1, value2, "englishName");
            return (Criteria) this;
        }

        public Criteria andEnglishNameNotBetween(String value1, String value2) {
            addCriterion("english_name not between", value1, value2, "englishName");
            return (Criteria) this;
        }

        public Criteria andCharacterIsNull() {
            addCriterion("character is null");
            return (Criteria) this;
        }

        public Criteria andCharacterIsNotNull() {
            addCriterion("character is not null");
            return (Criteria) this;
        }

        public Criteria andCharacterEqualTo(String value) {
            addCriterion("character =", value, "character");
            return (Criteria) this;
        }

        public Criteria andCharacterNotEqualTo(String value) {
            addCriterion("character <>", value, "character");
            return (Criteria) this;
        }

        public Criteria andCharacterGreaterThan(String value) {
            addCriterion("character >", value, "character");
            return (Criteria) this;
        }

        public Criteria andCharacterGreaterThanOrEqualTo(String value) {
            addCriterion("character >=", value, "character");
            return (Criteria) this;
        }

        public Criteria andCharacterLessThan(String value) {
            addCriterion("character <", value, "character");
            return (Criteria) this;
        }

        public Criteria andCharacterLessThanOrEqualTo(String value) {
            addCriterion("character <=", value, "character");
            return (Criteria) this;
        }

        public Criteria andCharacterLike(String value) {
            addCriterion("character like", value, "character");
            return (Criteria) this;
        }

        public Criteria andCharacterNotLike(String value) {
            addCriterion("character not like", value, "character");
            return (Criteria) this;
        }

        public Criteria andCharacterIn(List<String> values) {
            addCriterion("character in", values, "character");
            return (Criteria) this;
        }

        public Criteria andCharacterNotIn(List<String> values) {
            addCriterion("character not in", values, "character");
            return (Criteria) this;
        }

        public Criteria andCharacterBetween(String value1, String value2) {
            addCriterion("character between", value1, value2, "character");
            return (Criteria) this;
        }

        public Criteria andCharacterNotBetween(String value1, String value2) {
            addCriterion("character not between", value1, value2, "character");
            return (Criteria) this;
        }

        public Criteria andIndicationIsNull() {
            addCriterion("indication is null");
            return (Criteria) this;
        }

        public Criteria andIndicationIsNotNull() {
            addCriterion("indication is not null");
            return (Criteria) this;
        }

        public Criteria andIndicationEqualTo(String value) {
            addCriterion("indication =", value, "indication");
            return (Criteria) this;
        }

        public Criteria andIndicationNotEqualTo(String value) {
            addCriterion("indication <>", value, "indication");
            return (Criteria) this;
        }

        public Criteria andIndicationGreaterThan(String value) {
            addCriterion("indication >", value, "indication");
            return (Criteria) this;
        }

        public Criteria andIndicationGreaterThanOrEqualTo(String value) {
            addCriterion("indication >=", value, "indication");
            return (Criteria) this;
        }

        public Criteria andIndicationLessThan(String value) {
            addCriterion("indication <", value, "indication");
            return (Criteria) this;
        }

        public Criteria andIndicationLessThanOrEqualTo(String value) {
            addCriterion("indication <=", value, "indication");
            return (Criteria) this;
        }

        public Criteria andIndicationLike(String value) {
            addCriterion("indication like", value, "indication");
            return (Criteria) this;
        }

        public Criteria andIndicationNotLike(String value) {
            addCriterion("indication not like", value, "indication");
            return (Criteria) this;
        }

        public Criteria andIndicationIn(List<String> values) {
            addCriterion("indication in", values, "indication");
            return (Criteria) this;
        }

        public Criteria andIndicationNotIn(List<String> values) {
            addCriterion("indication not in", values, "indication");
            return (Criteria) this;
        }

        public Criteria andIndicationBetween(String value1, String value2) {
            addCriterion("indication between", value1, value2, "indication");
            return (Criteria) this;
        }

        public Criteria andIndicationNotBetween(String value1, String value2) {
            addCriterion("indication not between", value1, value2, "indication");
            return (Criteria) this;
        }

        public Criteria andChineseSpellIsNull() {
            addCriterion("chinese_spell is null");
            return (Criteria) this;
        }

        public Criteria andChineseSpellIsNotNull() {
            addCriterion("chinese_spell is not null");
            return (Criteria) this;
        }

        public Criteria andChineseSpellEqualTo(String value) {
            addCriterion("chinese_spell =", value, "chineseSpell");
            return (Criteria) this;
        }

        public Criteria andChineseSpellNotEqualTo(String value) {
            addCriterion("chinese_spell <>", value, "chineseSpell");
            return (Criteria) this;
        }

        public Criteria andChineseSpellGreaterThan(String value) {
            addCriterion("chinese_spell >", value, "chineseSpell");
            return (Criteria) this;
        }

        public Criteria andChineseSpellGreaterThanOrEqualTo(String value) {
            addCriterion("chinese_spell >=", value, "chineseSpell");
            return (Criteria) this;
        }

        public Criteria andChineseSpellLessThan(String value) {
            addCriterion("chinese_spell <", value, "chineseSpell");
            return (Criteria) this;
        }

        public Criteria andChineseSpellLessThanOrEqualTo(String value) {
            addCriterion("chinese_spell <=", value, "chineseSpell");
            return (Criteria) this;
        }

        public Criteria andChineseSpellLike(String value) {
            addCriterion("chinese_spell like", value, "chineseSpell");
            return (Criteria) this;
        }

        public Criteria andChineseSpellNotLike(String value) {
            addCriterion("chinese_spell not like", value, "chineseSpell");
            return (Criteria) this;
        }

        public Criteria andChineseSpellIn(List<String> values) {
            addCriterion("chinese_spell in", values, "chineseSpell");
            return (Criteria) this;
        }

        public Criteria andChineseSpellNotIn(List<String> values) {
            addCriterion("chinese_spell not in", values, "chineseSpell");
            return (Criteria) this;
        }

        public Criteria andChineseSpellBetween(String value1, String value2) {
            addCriterion("chinese_spell between", value1, value2, "chineseSpell");
            return (Criteria) this;
        }

        public Criteria andChineseSpellNotBetween(String value1, String value2) {
            addCriterion("chinese_spell not between", value1, value2, "chineseSpell");
            return (Criteria) this;
        }

        public Criteria andElementIsNull() {
            addCriterion("element is null");
            return (Criteria) this;
        }

        public Criteria andElementIsNotNull() {
            addCriterion("element is not null");
            return (Criteria) this;
        }

        public Criteria andElementEqualTo(String value) {
            addCriterion("element =", value, "element");
            return (Criteria) this;
        }

        public Criteria andElementNotEqualTo(String value) {
            addCriterion("element <>", value, "element");
            return (Criteria) this;
        }

        public Criteria andElementGreaterThan(String value) {
            addCriterion("element >", value, "element");
            return (Criteria) this;
        }

        public Criteria andElementGreaterThanOrEqualTo(String value) {
            addCriterion("element >=", value, "element");
            return (Criteria) this;
        }

        public Criteria andElementLessThan(String value) {
            addCriterion("element <", value, "element");
            return (Criteria) this;
        }

        public Criteria andElementLessThanOrEqualTo(String value) {
            addCriterion("element <=", value, "element");
            return (Criteria) this;
        }

        public Criteria andElementLike(String value) {
            addCriterion("element like", value, "element");
            return (Criteria) this;
        }

        public Criteria andElementNotLike(String value) {
            addCriterion("element not like", value, "element");
            return (Criteria) this;
        }

        public Criteria andElementIn(List<String> values) {
            addCriterion("element in", values, "element");
            return (Criteria) this;
        }

        public Criteria andElementNotIn(List<String> values) {
            addCriterion("element not in", values, "element");
            return (Criteria) this;
        }

        public Criteria andElementBetween(String value1, String value2) {
            addCriterion("element between", value1, value2, "element");
            return (Criteria) this;
        }

        public Criteria andElementNotBetween(String value1, String value2) {
            addCriterion("element not between", value1, value2, "element");
            return (Criteria) this;
        }

        public Criteria andActionCategoryIsNull() {
            addCriterion("action_category is null");
            return (Criteria) this;
        }

        public Criteria andActionCategoryIsNotNull() {
            addCriterion("action_category is not null");
            return (Criteria) this;
        }

        public Criteria andActionCategoryEqualTo(String value) {
            addCriterion("action_category =", value, "actionCategory");
            return (Criteria) this;
        }

        public Criteria andActionCategoryNotEqualTo(String value) {
            addCriterion("action_category <>", value, "actionCategory");
            return (Criteria) this;
        }

        public Criteria andActionCategoryGreaterThan(String value) {
            addCriterion("action_category >", value, "actionCategory");
            return (Criteria) this;
        }

        public Criteria andActionCategoryGreaterThanOrEqualTo(String value) {
            addCriterion("action_category >=", value, "actionCategory");
            return (Criteria) this;
        }

        public Criteria andActionCategoryLessThan(String value) {
            addCriterion("action_category <", value, "actionCategory");
            return (Criteria) this;
        }

        public Criteria andActionCategoryLessThanOrEqualTo(String value) {
            addCriterion("action_category <=", value, "actionCategory");
            return (Criteria) this;
        }

        public Criteria andActionCategoryLike(String value) {
            addCriterion("action_category like", value, "actionCategory");
            return (Criteria) this;
        }

        public Criteria andActionCategoryNotLike(String value) {
            addCriterion("action_category not like", value, "actionCategory");
            return (Criteria) this;
        }

        public Criteria andActionCategoryIn(List<String> values) {
            addCriterion("action_category in", values, "actionCategory");
            return (Criteria) this;
        }

        public Criteria andActionCategoryNotIn(List<String> values) {
            addCriterion("action_category not in", values, "actionCategory");
            return (Criteria) this;
        }

        public Criteria andActionCategoryBetween(String value1, String value2) {
            addCriterion("action_category between", value1, value2, "actionCategory");
            return (Criteria) this;
        }

        public Criteria andActionCategoryNotBetween(String value1, String value2) {
            addCriterion("action_category not between", value1, value2, "actionCategory");
            return (Criteria) this;
        }

        public Criteria andUsageDosageIsNull() {
            addCriterion("usage_dosage is null");
            return (Criteria) this;
        }

        public Criteria andUsageDosageIsNotNull() {
            addCriterion("usage_dosage is not null");
            return (Criteria) this;
        }

        public Criteria andUsageDosageEqualTo(String value) {
            addCriterion("usage_dosage =", value, "usageDosage");
            return (Criteria) this;
        }

        public Criteria andUsageDosageNotEqualTo(String value) {
            addCriterion("usage_dosage <>", value, "usageDosage");
            return (Criteria) this;
        }

        public Criteria andUsageDosageGreaterThan(String value) {
            addCriterion("usage_dosage >", value, "usageDosage");
            return (Criteria) this;
        }

        public Criteria andUsageDosageGreaterThanOrEqualTo(String value) {
            addCriterion("usage_dosage >=", value, "usageDosage");
            return (Criteria) this;
        }

        public Criteria andUsageDosageLessThan(String value) {
            addCriterion("usage_dosage <", value, "usageDosage");
            return (Criteria) this;
        }

        public Criteria andUsageDosageLessThanOrEqualTo(String value) {
            addCriterion("usage_dosage <=", value, "usageDosage");
            return (Criteria) this;
        }

        public Criteria andUsageDosageLike(String value) {
            addCriterion("usage_dosage like", value, "usageDosage");
            return (Criteria) this;
        }

        public Criteria andUsageDosageNotLike(String value) {
            addCriterion("usage_dosage not like", value, "usageDosage");
            return (Criteria) this;
        }

        public Criteria andUsageDosageIn(List<String> values) {
            addCriterion("usage_dosage in", values, "usageDosage");
            return (Criteria) this;
        }

        public Criteria andUsageDosageNotIn(List<String> values) {
            addCriterion("usage_dosage not in", values, "usageDosage");
            return (Criteria) this;
        }

        public Criteria andUsageDosageBetween(String value1, String value2) {
            addCriterion("usage_dosage between", value1, value2, "usageDosage");
            return (Criteria) this;
        }

        public Criteria andUsageDosageNotBetween(String value1, String value2) {
            addCriterion("usage_dosage not between", value1, value2, "usageDosage");
            return (Criteria) this;
        }

        public Criteria andUntowardEffectIsNull() {
            addCriterion("untoward_effect is null");
            return (Criteria) this;
        }

        public Criteria andUntowardEffectIsNotNull() {
            addCriterion("untoward_effect is not null");
            return (Criteria) this;
        }

        public Criteria andUntowardEffectEqualTo(String value) {
            addCriterion("untoward_effect =", value, "untowardEffect");
            return (Criteria) this;
        }

        public Criteria andUntowardEffectNotEqualTo(String value) {
            addCriterion("untoward_effect <>", value, "untowardEffect");
            return (Criteria) this;
        }

        public Criteria andUntowardEffectGreaterThan(String value) {
            addCriterion("untoward_effect >", value, "untowardEffect");
            return (Criteria) this;
        }

        public Criteria andUntowardEffectGreaterThanOrEqualTo(String value) {
            addCriterion("untoward_effect >=", value, "untowardEffect");
            return (Criteria) this;
        }

        public Criteria andUntowardEffectLessThan(String value) {
            addCriterion("untoward_effect <", value, "untowardEffect");
            return (Criteria) this;
        }

        public Criteria andUntowardEffectLessThanOrEqualTo(String value) {
            addCriterion("untoward_effect <=", value, "untowardEffect");
            return (Criteria) this;
        }

        public Criteria andUntowardEffectLike(String value) {
            addCriterion("untoward_effect like", value, "untowardEffect");
            return (Criteria) this;
        }

        public Criteria andUntowardEffectNotLike(String value) {
            addCriterion("untoward_effect not like", value, "untowardEffect");
            return (Criteria) this;
        }

        public Criteria andUntowardEffectIn(List<String> values) {
            addCriterion("untoward_effect in", values, "untowardEffect");
            return (Criteria) this;
        }

        public Criteria andUntowardEffectNotIn(List<String> values) {
            addCriterion("untoward_effect not in", values, "untowardEffect");
            return (Criteria) this;
        }

        public Criteria andUntowardEffectBetween(String value1, String value2) {
            addCriterion("untoward_effect between", value1, value2, "untowardEffect");
            return (Criteria) this;
        }

        public Criteria andUntowardEffectNotBetween(String value1, String value2) {
            addCriterion("untoward_effect not between", value1, value2, "untowardEffect");
            return (Criteria) this;
        }

        public Criteria andTabooIsNull() {
            addCriterion("taboo is null");
            return (Criteria) this;
        }

        public Criteria andTabooIsNotNull() {
            addCriterion("taboo is not null");
            return (Criteria) this;
        }

        public Criteria andTabooEqualTo(String value) {
            addCriterion("taboo =", value, "taboo");
            return (Criteria) this;
        }

        public Criteria andTabooNotEqualTo(String value) {
            addCriterion("taboo <>", value, "taboo");
            return (Criteria) this;
        }

        public Criteria andTabooGreaterThan(String value) {
            addCriterion("taboo >", value, "taboo");
            return (Criteria) this;
        }

        public Criteria andTabooGreaterThanOrEqualTo(String value) {
            addCriterion("taboo >=", value, "taboo");
            return (Criteria) this;
        }

        public Criteria andTabooLessThan(String value) {
            addCriterion("taboo <", value, "taboo");
            return (Criteria) this;
        }

        public Criteria andTabooLessThanOrEqualTo(String value) {
            addCriterion("taboo <=", value, "taboo");
            return (Criteria) this;
        }

        public Criteria andTabooLike(String value) {
            addCriterion("taboo like", value, "taboo");
            return (Criteria) this;
        }

        public Criteria andTabooNotLike(String value) {
            addCriterion("taboo not like", value, "taboo");
            return (Criteria) this;
        }

        public Criteria andTabooIn(List<String> values) {
            addCriterion("taboo in", values, "taboo");
            return (Criteria) this;
        }

        public Criteria andTabooNotIn(List<String> values) {
            addCriterion("taboo not in", values, "taboo");
            return (Criteria) this;
        }

        public Criteria andTabooBetween(String value1, String value2) {
            addCriterion("taboo between", value1, value2, "taboo");
            return (Criteria) this;
        }

        public Criteria andTabooNotBetween(String value1, String value2) {
            addCriterion("taboo not between", value1, value2, "taboo");
            return (Criteria) this;
        }

        public Criteria andAttentionIsNull() {
            addCriterion("attention is null");
            return (Criteria) this;
        }

        public Criteria andAttentionIsNotNull() {
            addCriterion("attention is not null");
            return (Criteria) this;
        }

        public Criteria andAttentionEqualTo(String value) {
            addCriterion("attention =", value, "attention");
            return (Criteria) this;
        }

        public Criteria andAttentionNotEqualTo(String value) {
            addCriterion("attention <>", value, "attention");
            return (Criteria) this;
        }

        public Criteria andAttentionGreaterThan(String value) {
            addCriterion("attention >", value, "attention");
            return (Criteria) this;
        }

        public Criteria andAttentionGreaterThanOrEqualTo(String value) {
            addCriterion("attention >=", value, "attention");
            return (Criteria) this;
        }

        public Criteria andAttentionLessThan(String value) {
            addCriterion("attention <", value, "attention");
            return (Criteria) this;
        }

        public Criteria andAttentionLessThanOrEqualTo(String value) {
            addCriterion("attention <=", value, "attention");
            return (Criteria) this;
        }

        public Criteria andAttentionLike(String value) {
            addCriterion("attention like", value, "attention");
            return (Criteria) this;
        }

        public Criteria andAttentionNotLike(String value) {
            addCriterion("attention not like", value, "attention");
            return (Criteria) this;
        }

        public Criteria andAttentionIn(List<String> values) {
            addCriterion("attention in", values, "attention");
            return (Criteria) this;
        }

        public Criteria andAttentionNotIn(List<String> values) {
            addCriterion("attention not in", values, "attention");
            return (Criteria) this;
        }

        public Criteria andAttentionBetween(String value1, String value2) {
            addCriterion("attention between", value1, value2, "attention");
            return (Criteria) this;
        }

        public Criteria andAttentionNotBetween(String value1, String value2) {
            addCriterion("attention not between", value1, value2, "attention");
            return (Criteria) this;
        }

        public Criteria andDrugInteractionIsNull() {
            addCriterion("drug_interaction is null");
            return (Criteria) this;
        }

        public Criteria andDrugInteractionIsNotNull() {
            addCriterion("drug_interaction is not null");
            return (Criteria) this;
        }

        public Criteria andDrugInteractionEqualTo(String value) {
            addCriterion("drug_interaction =", value, "drugInteraction");
            return (Criteria) this;
        }

        public Criteria andDrugInteractionNotEqualTo(String value) {
            addCriterion("drug_interaction <>", value, "drugInteraction");
            return (Criteria) this;
        }

        public Criteria andDrugInteractionGreaterThan(String value) {
            addCriterion("drug_interaction >", value, "drugInteraction");
            return (Criteria) this;
        }

        public Criteria andDrugInteractionGreaterThanOrEqualTo(String value) {
            addCriterion("drug_interaction >=", value, "drugInteraction");
            return (Criteria) this;
        }

        public Criteria andDrugInteractionLessThan(String value) {
            addCriterion("drug_interaction <", value, "drugInteraction");
            return (Criteria) this;
        }

        public Criteria andDrugInteractionLessThanOrEqualTo(String value) {
            addCriterion("drug_interaction <=", value, "drugInteraction");
            return (Criteria) this;
        }

        public Criteria andDrugInteractionLike(String value) {
            addCriterion("drug_interaction like", value, "drugInteraction");
            return (Criteria) this;
        }

        public Criteria andDrugInteractionNotLike(String value) {
            addCriterion("drug_interaction not like", value, "drugInteraction");
            return (Criteria) this;
        }

        public Criteria andDrugInteractionIn(List<String> values) {
            addCriterion("drug_interaction in", values, "drugInteraction");
            return (Criteria) this;
        }

        public Criteria andDrugInteractionNotIn(List<String> values) {
            addCriterion("drug_interaction not in", values, "drugInteraction");
            return (Criteria) this;
        }

        public Criteria andDrugInteractionBetween(String value1, String value2) {
            addCriterion("drug_interaction between", value1, value2, "drugInteraction");
            return (Criteria) this;
        }

        public Criteria andDrugInteractionNotBetween(String value1, String value2) {
            addCriterion("drug_interaction not between", value1, value2, "drugInteraction");
            return (Criteria) this;
        }

        public Criteria andInnerEffictionIsNull() {
            addCriterion("inner_effiction is null");
            return (Criteria) this;
        }

        public Criteria andInnerEffictionIsNotNull() {
            addCriterion("inner_effiction is not null");
            return (Criteria) this;
        }

        public Criteria andInnerEffictionEqualTo(String value) {
            addCriterion("inner_effiction =", value, "innerEffiction");
            return (Criteria) this;
        }

        public Criteria andInnerEffictionNotEqualTo(String value) {
            addCriterion("inner_effiction <>", value, "innerEffiction");
            return (Criteria) this;
        }

        public Criteria andInnerEffictionGreaterThan(String value) {
            addCriterion("inner_effiction >", value, "innerEffiction");
            return (Criteria) this;
        }

        public Criteria andInnerEffictionGreaterThanOrEqualTo(String value) {
            addCriterion("inner_effiction >=", value, "innerEffiction");
            return (Criteria) this;
        }

        public Criteria andInnerEffictionLessThan(String value) {
            addCriterion("inner_effiction <", value, "innerEffiction");
            return (Criteria) this;
        }

        public Criteria andInnerEffictionLessThanOrEqualTo(String value) {
            addCriterion("inner_effiction <=", value, "innerEffiction");
            return (Criteria) this;
        }

        public Criteria andInnerEffictionLike(String value) {
            addCriterion("inner_effiction like", value, "innerEffiction");
            return (Criteria) this;
        }

        public Criteria andInnerEffictionNotLike(String value) {
            addCriterion("inner_effiction not like", value, "innerEffiction");
            return (Criteria) this;
        }

        public Criteria andInnerEffictionIn(List<String> values) {
            addCriterion("inner_effiction in", values, "innerEffiction");
            return (Criteria) this;
        }

        public Criteria andInnerEffictionNotIn(List<String> values) {
            addCriterion("inner_effiction not in", values, "innerEffiction");
            return (Criteria) this;
        }

        public Criteria andInnerEffictionBetween(String value1, String value2) {
            addCriterion("inner_effiction between", value1, value2, "innerEffiction");
            return (Criteria) this;
        }

        public Criteria andInnerEffictionNotBetween(String value1, String value2) {
            addCriterion("inner_effiction not between", value1, value2, "innerEffiction");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("create_time is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("create_time is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(Timestamp value) {
            addCriterion("create_time =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(Timestamp value) {
            addCriterion("create_time <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(Timestamp value) {
            addCriterion("create_time >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(Timestamp value) {
            addCriterion("create_time >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(Timestamp value) {
            addCriterion("create_time <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(Timestamp value) {
            addCriterion("create_time <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<Timestamp> values) {
            addCriterion("create_time in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<Timestamp> values) {
            addCriterion("create_time not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(Timestamp value1, Timestamp value2) {
            addCriterion("create_time between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(Timestamp value1, Timestamp value2) {
            addCriterion("create_time not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNull() {
            addCriterion("update_time is null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNotNull() {
            addCriterion("update_time is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeEqualTo(Timestamp value) {
            addCriterion("update_time =", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotEqualTo(Timestamp value) {
            addCriterion("update_time <>", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThan(Timestamp value) {
            addCriterion("update_time >", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanOrEqualTo(Timestamp value) {
            addCriterion("update_time >=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThan(Timestamp value) {
            addCriterion("update_time <", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanOrEqualTo(Timestamp value) {
            addCriterion("update_time <=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIn(List<Timestamp> values) {
            addCriterion("update_time in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotIn(List<Timestamp> values) {
            addCriterion("update_time not in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeBetween(Timestamp value1, Timestamp value2) {
            addCriterion("update_time between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotBetween(Timestamp value1, Timestamp value2) {
            addCriterion("update_time not between", value1, value2, "updateTime");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}